function h = mhagui_generic( handle, base, h )
% Create a generic MHA control panel
%
% h = mhagui_generic( handle, base )
%
% Input arguments:
% - handle   : Handle of MHA server, e.g. for mha_set interface a
%              struct containing the fields 'host' and
%              'port' (default is port = 33337 and host = 'localhost').
% - base     : Node name of the MHA level to be shown, needs 
%              to be of type 'parser' (default: '').
%
% Return value:
% - h        : Figure handle of control panel.
%
% All input arguments are optional. A running MHA server is
% required.
%
% (c) 2005 Universitaet Oldenburg, Germany
%          Author: Giso Grimm
%
  
  if nargin == 0
    base = '';
    handle.port = 33337;
    handle.host = 'localhost';
  end
  if nargin == 1
    if ischar(handle)
      base = handle;
      handle.port = 33337;
      handle.host = 'localhost';
    else
      base = '';
    end
  end
  if nargin > 3
    error('to many parameters');
  end
  info = mha_getinfo(handle,base);
  x = 0;
  if nargin < 3
    lbase = base;
    if length(lbase) > 0
      if lbase(1) == '.'
	lbase(1) = [];
      end
    end
    if length(lbase) == 0
      lbase = '(root configuration)';
    end
    h = figure('Name',sprintf('MHA@%s: %s',handle.host,lbase), ...
	       'NumberTitle','off','MenuBar','none',...
	       'Color',ones(1,3));
    isOctave = exist('OCTAVE_VERSION', 'builtin') ~= 0;
    if ~isOctave
      movegui(h,'center');
    end
    pos = get(h,'Position');
    handle.screen_width = 2*pos(1)+pos(3);
    handle.screen_height = 2*pos(2)+pos(4);
    set(h,'UserData',struct('handle',handle,'base',base));
  end
  window_blank = 75;
  element_height = 40;
  element_width = 525;
  n_elements = length(mha_mha2matlab('vector<string>', ...
				     info.entries));
  max_n_elements = floor((handle.screen_height - window_blank)/element_height);
  n_elements_x = floor(n_elements/max_n_elements)+1;
  n_elements_y = ceil(n_elements/n_elements_x);
  wnd_height = n_elements_y * element_height + window_blank;
  wnd_width = n_elements_x * element_width;
  m = zeros(40,48,3);
  m(:,:,1) = m1;
  m(:,:,2) = m2;
  m(:,:,3) = m3;
  k_element = 0;
  p = get(h,'Position');
  p(3) = wnd_width;
  p(4) = wnd_height;
  set(h,'Position',p);
  %ax = axes('position',[505-48 wnd_height-40 48 40],'NextPlot','add');
  for entr=mha_mha2matlab('vector<string>',info.entries)
    % calculate element position:
    element_y = wnd_height - mod(k_element,n_elements_y)*element_height ...
	- window_blank - element_height + 15;
    element_x = floor(k_element/n_elements_y)*element_width + 10;
    k_element = k_element + 1;
    %
    sbase = sprintf('%s.%s',base,entr{:});
    linfo = mha_getinfo(handle,sbase);
    if ~isfield(linfo, 'perm' )
      if strcmp(linfo.type,'parser')
	linfo.perm = 'parser';
      else
	linfo.perm = 'monitor';
      end
    end
    figure(h);
    uicontrol('Style','frame','Position',[element_x element_y 505 40]);
    if ~strcmp(linfo.perm,'monitor')
      if strcmp(linfo.type,'float')
	figure(h);
	mhagui_scalar(handle,sbase,[element_x element_y]);
      elseif strcmp(linfo.type,'int')
	figure(h);
	mhagui_scalar(handle,sbase,[element_x element_y]);
      elseif strcmp(linfo.type,'keyword_list')
	figure(h);
	mhagui_keyword(handle,sbase,[element_x element_y 300]);
      elseif strcmp(linfo.type,'parser')
	figure(h);
	mhagui_parser(handle,sbase,[element_x element_y]);
      elseif strcmp(linfo.type,'vector<float>')
	figure(h);
	mhagui_vfloatwrap(handle,sbase,[element_x element_y]);
      elseif strcmp(linfo.type,'bool')
	figure(h);
	mhagui_bool(handle,sbase,[element_x element_y]);
      else
	figure(h);
	mhagui_edit(handle,sbase,[element_x element_y 340]);
      end
    else
      mhagui_monitor(handle,sbase,[element_x element_y]);
    end
  end
  uicontrol('Style','PushButton',...
	    'String','Reload',...
	    'Callback',@refresh_mhagui,...
	    'Position',[element_width-20-45-48 wnd_height-51 50 42]);
  uicontrol('Style','PushButton',...
	    'String','Read',...
	    'Callback',@read_config,...
	    'UserData',struct('handle',handle,'base',base),...
	    'Position',[element_width-20-97-48 wnd_height-30 50 21]);
  uicontrol('Style','PushButton',...
	    'String','Save',...
	    'Callback',@save_config,...
	    'UserData',struct('handle',handle,'base',base),...
	    'Position',[element_width-20-97-48 wnd_height-51 50 21]);
  uicontrol('Style','Text',...
	    'String',info.help,...
	    'Position',[10 wnd_height-51 element_width-30-98-48 42],...
	    'BackgroundColor',ones(1,3),...
	    'HorizontalAlignment','left');
  ax = axes('units','pixels','position',[515-48 wnd_height-49 48 40]);
  image(m/256);
  set(ax,'XTick',[],'YTick',[]);

 

function s = m1
% data file created by struct2mfile
% date: 14-Dec-2006 12:08:49
% user: giso
% cwd: /home/giso/Oldenburg/hoertech/mha
s = struct;
s = [...
255	255	255	255	255	255	255	255	255	255	255	255	250	209	221	224	224	225	226	226	229	220	218	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	254	196	255	255	255	255	255	255	255	222	212	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	252	195	255	255	255	255	255	255	255	214	217	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	244	201	255	255	255	253	245	255	255	210	217	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
212	219	219	219	220	221	222	222	222	222	222	222	220	208	222	222	221	223	201	242	240	212	205	223	216	211	210	210	220	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
219	255	255	225	222	221	218	216	216	217	218	222	227	234	247	255	255	254	206	227	225	226	231	237	245	252	255	218	215	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
220	255	255	223	210	213	214	217	216	213	210	207	204	200	215	255	255	251	219	255	255	255	255	254	249	252	251	208	230	241	238	236	236	235	236	237	240	243	246	249	251	253	255	255	255	250	255	255;...
222	235	221	220	213	215	208	219	222	221	215	202	204	223	222	223	213	207	215	255	255	255	255	230	189	189	191	193	197	202	205	207	209	209	208	206	202	200	196	193	191	190	192	197	201	191	206	255;...
245	202	232	255	216	240	211	215	255	255	245	208	221	255	255	255	223	195	253	255	255	255	255	223	235	253	254	255	255	255	255	255	255	255	255	255	255	255	255	255	254	253	248	243	239	198	241	255;...
246	200	240	255	205	247	210	217	255	255	246	204	223	255	255	255	219	193	252	255	255	255	255	221	236	255	255	216	208	203	199	195	192	192	192	192	194	197	199	203	208	220	255	255	255	200	253	255;...
247	198	242	255	198	250	211	218	255	255	243	203	225	255	255	255	214	195	250	255	255	255	255	219	237	255	255	243	236	241	243	247	249	250	249	248	247	244	242	236	230	226	255	255	255	199	255	255;...
247	196	243	255	193	249	211	217	255	255	242	199	226	255	255	255	214	194	246	255	255	255	255	221	234	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	252	198	255	255;...
247	195	243	255	194	245	211	214	255	255	245	192	223	255	255	255	217	193	239	255	255	255	255	227	229	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	248	197	254	255;...
250	192	241	255	200	231	209	206	235	229	222	191	200	212	209	206	196	189	195	198	196	195	195	193	194	198	198	198	197	197	195	195	194	194	194	194	195	195	197	198	198	198	198	196	194	189	221	255;...
255	244	254	255	209	189	189	189	193	198	203	209	212	216	221	224	224	228	229	229	229	231	230	231	229	229	228	229	229	229	229	230	230	231	231	230	229	228	227	227	228	226	228	228	229	225	247	255;...
255	255	255	255	236	242	244	251	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
243	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	242	248;...
92	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	79	86	113	79	79	79	79	79	163;...
92	104	204	125	80	80	139	204	89	80	132	211	93	157	198	82	80	80	80	80	80	163	204	204	204	204	204	169	80	80	80	80	80	80	80	80	80	80	80	80	178	247	81	80	80	80	80	164;...
92	114	255	143	80	80	163	255	93	80	156	248	103	189	236	85	80	80	80	80	80	149	183	207	255	200	183	144	80	80	80	80	80	80	80	80	80	80	80	80	169	250	82	80	80	80	80	164;...
92	114	255	143	80	80	163	255	93	80	80	106	143	135	90	80	80	101	120	98	147	83	80	138	255	120	80	80	83	131	143	101	80	80	80	84	134	145	98	80	168	250	88	135	137	85	80	164;...
92	114	255	145	83	83	165	255	93	80	130	249	220	237	227	95	80	196	235	238	221	80	80	138	255	120	80	86	215	240	221	249	128	80	91	222	244	232	222	81	169	253	232	238	253	200	80	164;...
92	114	255	252	251	251	253	255	93	81	232	208	80	97	250	177	80	178	253	125	83	80	80	138	255	120	80	157	254	106	81	212	218	80	172	253	104	81	98	80	168	253	133	80	184	240	80	164;...
92	114	255	174	128	128	188	255	93	102	255	167	80	80	225	220	80	176	246	80	80	80	80	138	255	120	80	196	251	173	173	219	246	81	216	228	80	80	80	80	169	250	82	80	171	241	80	164;...
92	114	255	143	80	80	163	255	93	108	255	165	80	80	221	226	80	176	246	80	80	80	80	138	255	120	80	201	250	178	178	178	175	81	224	221	80	80	80	80	168	250	82	80	171	241	80	164;...
92	114	255	143	80	80	163	255	93	86	248	190	80	83	241	197	80	176	246	80	80	80	80	138	255	120	80	172	253	94	80	80	81	80	202	241	83	80	81	80	169	250	82	80	171	241	80	164;...
92	114	255	143	80	80	163	255	93	80	175	248	161	190	252	121	80	176	246	80	80	80	80	138	255	120	80	100	243	215	156	186	190	80	131	254	195	164	222	91	169	250	82	80	171	241	80	164;...
92	98	176	114	80	80	125	175	87	80	82	152	202	193	122	80	80	132	171	80	80	80	80	111	176	102	80	80	106	183	206	178	105	80	80	133	197	200	144	80	128	173	81	80	130	168	80	164;...
109	97	98	98	98	97	98	97	98	97	98	98	97	98	98	97	97	98	98	97	97	98	98	97	98	98	98	98	98	98	97	98	98	97	97	97	97	97	97	97	98	97	98	98	98	97	98	173;...
255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
228	235	242	255	255	255	255	255	255	255	255	255	255	255	249	252	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	246	255	255	255	255	255	255	255	255	255	255	205	227	231	247	255	255;...
177	185	244	196	227	213	193	201	227	206	194	249	210	212	192	216	217	205	232	198	222	221	200	234	196	243	202	222	211	192	239	166	227	201	224	226	251	193	194	195	255	251	160	212	242	223	206	223;...
160	203	196	245	183	196	207	234	192	190	232	201	161	183	206	244	162	178	214	235	189	237	203	253	187	219	180	192	195	215	229	196	209	235	196	200	250	197	185	193	252	255	188	197	250	201	188	255;...
197	200	215	190	204	205	215	239	201	176	187	235	183	215	217	217	190	207	222	239	199	176	213	201	195	238	182	225	205	221	233	181	215	240	188	173	247	206	198	203	253	255	198	208	195	203	201	255;...
255	255	255	255	255	255	255	255	255	205	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
251	255	251	254	254	255	255	255	255	255	255	255	255	254	254	255	255	255	255	255	246	244	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	239	255	255	255	255	241	238	254	255;...
191	255	189	203	200	241	234	227	234	238	235	241	231	189	215	185	248	222	254	253	174	214	242	249	239	220	199	234	232	241	238	228	226	236	195	244	229	253	222	190	229	251	231	233	210	192	247	246;...
176	202	185	185	183	187	210	186	168	163	160	186	224	192	189	185	184	185	192	229	185	182	188	195	176	215	193	233	164	168	182	176	209	198	197	169	164	183	228	185	217	206	176	182	190	192	181	249;...
191	255	189	179	180	188	249	140	216	173	223	191	211	207	189	191	187	220	237	244	227	182	205	175	236	174	190	236	177	227	197	189	234	202	199	177	220	190	230	186	247	205	196	189	191	192	193	233;...
245	255	244	239	236	245	234	196	180	241	233	245	253	226	243	230	249	223	253	255	227	237	234	209	239	228	247	235	235	239	246	244	252	248	227	245	228	252	225	244	254	247	246	244	245	245	254	242;...
];

function s = m2
% data file created by struct2mfile
% date: 14-Dec-2006 12:09:25
% user: giso
% cwd: /home/giso/Oldenburg/hoertech/mha
s = struct;
s = [...
255	255	255	255	255	255	255	255	255	255	255	255	250	210	222	225	225	226	227	227	230	220	218	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	254	197	255	255	255	255	255	255	255	223	213	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	252	197	255	255	255	255	255	255	255	215	218	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	245	202	255	255	255	253	246	255	255	211	218	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
213	220	220	220	221	221	223	223	223	223	222	222	220	209	223	222	222	224	203	242	240	213	206	224	217	212	211	211	221	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
220	255	255	226	223	222	219	217	217	218	219	223	228	235	247	255	255	254	207	227	226	227	231	237	245	252	255	219	216	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
221	255	255	224	211	214	215	218	217	214	211	208	205	201	216	255	255	251	220	255	255	255	255	254	250	252	251	209	231	241	238	237	236	235	236	238	241	243	247	250	251	253	255	255	255	250	255	255;...
222	236	222	221	214	216	209	220	223	222	216	203	205	224	223	223	214	208	216	255	255	255	255	231	191	191	192	195	198	204	206	208	210	210	209	207	204	201	197	194	192	191	193	198	202	193	207	255;...
245	203	233	255	217	241	212	216	255	255	245	209	221	255	255	255	224	196	253	255	255	255	255	224	235	253	254	255	255	255	255	255	255	255	255	255	255	255	255	255	254	253	248	244	240	199	242	255;...
247	201	240	255	207	248	211	218	255	255	246	205	224	255	255	255	220	194	252	255	255	255	255	222	237	255	255	217	209	205	200	196	193	193	193	194	196	198	200	204	209	220	255	255	255	201	253	255;...
247	199	242	255	199	250	212	218	255	255	244	204	226	255	255	255	215	196	250	255	255	255	255	219	237	255	255	244	237	241	244	247	249	250	249	248	247	244	242	237	230	227	255	255	255	200	255	255;...
247	197	244	255	195	249	212	218	255	255	242	200	227	255	255	255	215	196	247	255	255	255	255	222	235	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	252	199	255	255;...
248	196	243	255	196	245	212	215	255	255	245	194	224	255	255	255	218	194	240	255	255	255	255	227	229	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	249	198	254	255;...
250	194	241	255	201	231	211	207	235	230	223	192	201	213	210	207	198	190	197	199	197	197	197	195	196	199	199	200	199	198	197	196	196	195	195	195	196	197	198	199	199	200	199	197	195	190	222	255;...
255	244	254	255	210	190	190	191	195	199	205	210	213	217	222	225	225	228	229	230	229	231	230	232	230	229	229	229	229	229	230	231	231	232	232	231	229	229	228	228	228	226	229	229	230	225	247	255;...
255	255	255	255	236	242	244	251	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
244	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	243	249;...
103	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	91	97	122	91	91	91	91	91	169;...
103	114	207	133	91	91	147	207	100	91	140	214	104	164	202	93	91	91	91	91	91	169	207	207	207	207	207	175	91	91	91	91	91	91	91	91	91	91	91	91	183	248	93	91	91	91	91	170;...
103	123	255	150	91	91	169	255	104	91	163	248	113	193	238	96	91	91	91	91	91	156	188	210	255	203	188	151	91	91	91	91	91	91	91	91	91	91	91	91	174	251	93	91	91	91	91	170;...
103	123	255	150	91	91	169	255	104	91	92	116	150	143	101	91	91	111	129	109	154	95	91	145	255	129	91	91	95	140	151	111	91	91	91	96	142	152	109	92	174	251	99	143	145	97	91	170;...
103	123	255	152	94	94	171	255	104	91	139	249	223	238	229	105	91	200	236	239	224	92	91	146	255	129	91	97	217	241	223	249	137	91	102	224	245	234	224	92	174	253	233	240	254	204	91	170;...
103	123	255	252	251	251	253	255	104	93	234	211	92	108	251	182	91	183	254	134	94	91	91	145	255	129	91	164	254	116	92	215	220	91	177	253	114	93	109	91	174	254	141	92	188	241	91	170;...
103	123	255	179	136	136	193	255	104	112	255	173	91	91	227	222	91	181	246	92	91	91	91	146	255	129	91	200	251	179	178	221	247	92	219	230	91	91	91	91	174	251	93	91	176	242	92	169;...
103	123	255	150	91	91	169	255	104	118	255	171	91	91	223	228	91	181	246	92	91	91	91	145	255	129	91	204	250	183	183	183	180	92	226	224	91	91	91	91	174	251	93	91	176	242	92	170;...
103	123	255	150	91	91	169	255	104	97	248	194	91	94	242	201	91	181	246	92	91	91	91	146	255	129	91	177	253	105	91	91	93	91	205	242	94	91	93	91	174	251	93	91	176	242	92	170;...
103	123	255	150	91	91	169	255	104	91	180	249	167	194	252	130	91	181	246	92	91	91	91	146	255	129	91	110	243	218	162	190	195	91	139	254	199	170	224	102	174	251	93	91	176	242	92	170;...
103	109	181	124	91	91	134	181	98	91	93	159	206	197	131	91	91	140	176	92	91	91	91	121	181	112	91	91	116	188	209	184	115	91	91	141	201	204	151	92	137	179	92	91	138	174	91	169;...
119	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	108	178;...
255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
228	235	242	255	255	255	255	255	255	255	255	255	255	255	249	252	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	246	255	255	255	255	255	255	255	255	255	255	205	227	231	247	255	255;...
177	185	244	196	227	213	193	201	227	206	194	249	210	211	192	216	217	205	232	198	222	221	200	234	196	243	202	222	211	192	238	166	227	201	224	226	251	193	194	195	255	251	160	212	241	223	206	223;...
160	203	196	245	183	195	207	234	192	190	232	201	161	183	206	243	162	178	214	235	189	237	203	253	187	219	180	192	195	215	228	196	209	235	196	200	250	197	185	193	252	255	188	197	250	201	189	255;...
197	200	214	190	204	205	215	239	202	176	187	235	183	214	217	216	190	207	222	238	199	176	213	201	195	237	183	225	205	222	233	181	215	240	188	173	246	206	198	203	253	255	199	208	195	203	201	255;...
255	255	255	255	255	255	255	255	255	205	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
251	255	251	254	254	255	255	255	255	255	255	255	255	254	254	255	255	255	255	255	246	244	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	239	255	255	255	255	241	238	254	255;...
191	255	189	203	199	241	234	227	234	238	235	241	231	189	215	185	248	222	254	253	174	214	242	249	239	220	199	234	232	241	237	228	226	236	195	244	229	253	222	190	229	251	231	233	210	192	247	246;...
176	202	184	185	184	187	210	186	168	163	160	186	224	192	189	185	184	185	192	230	185	182	188	195	176	215	193	233	164	169	182	176	209	198	197	169	164	183	228	185	217	206	176	182	191	192	181	249;...
191	255	189	179	181	188	249	140	215	173	223	191	212	207	189	191	187	220	236	244	227	183	205	175	236	174	190	236	177	227	197	189	234	202	199	177	220	190	230	186	246	205	196	189	191	192	193	233;...
245	255	244	239	236	245	234	196	180	241	233	245	253	226	243	230	249	223	253	255	227	237	234	209	238	228	247	235	235	239	246	244	252	248	227	245	228	252	225	244	254	247	246	244	245	245	254	242;...
];

function s = m3
% data file created by struct2mfile
% date: 14-Dec-2006 12:09:29
% user: giso
% cwd: /home/giso/Oldenburg/hoertech/mha
s = struct;
s = [...
255	255	255	255	255	255	255	255	255	255	255	255	250	212	223	226	226	227	228	228	231	222	220	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	254	199	255	255	255	255	255	255	255	224	214	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	252	199	255	255	255	255	255	255	255	216	220	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
255	255	255	255	255	255	255	255	255	255	255	255	245	204	255	255	255	253	246	255	255	213	221	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
215	221	221	221	222	223	224	225	224	224	224	224	222	211	224	224	223	225	204	243	241	214	208	225	218	214	213	212	222	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
221	255	255	227	224	223	220	218	218	219	221	224	229	235	247	255	255	254	209	228	227	228	232	238	245	252	255	220	217	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
222	255	255	225	213	215	216	220	219	215	212	210	207	203	217	255	255	251	221	255	255	255	255	254	250	252	251	211	232	242	239	237	237	236	237	238	241	244	247	250	251	253	255	255	255	250	255	255;...
224	236	223	223	216	217	211	221	224	223	217	205	207	225	224	225	216	210	218	255	255	255	255	232	193	193	194	197	200	205	208	210	211	211	210	209	205	203	199	196	194	194	195	200	204	195	208	255;...
246	205	234	255	218	241	213	218	255	255	245	211	223	255	255	255	225	198	253	255	255	255	255	225	236	253	254	255	255	255	255	255	255	255	255	255	255	255	255	255	254	253	248	244	240	201	242	255;...
247	203	241	255	208	248	213	219	255	255	246	207	225	255	255	255	221	196	252	255	255	255	255	223	237	255	255	218	211	206	202	198	195	195	195	196	198	200	202	206	211	222	255	255	255	203	253	255;...
247	201	243	255	201	251	214	220	255	255	244	206	227	255	255	255	217	198	251	255	255	255	255	221	238	255	255	244	237	242	244	248	250	250	249	249	247	245	243	238	231	228	255	255	255	202	255	255;...
247	199	244	255	197	250	214	220	255	255	242	202	228	255	255	255	216	198	247	255	255	255	255	223	235	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	253	201	255	255;...
248	199	244	255	198	246	214	216	255	255	245	196	225	255	255	255	220	196	240	255	255	255	255	228	230	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	249	200	254	255;...
250	196	242	255	203	232	212	209	236	231	224	194	203	214	212	208	200	192	199	201	199	199	199	197	198	201	201	201	201	200	199	198	197	197	197	197	198	199	200	201	201	202	201	199	197	192	223	255;...
255	244	254	255	212	192	192	193	197	201	206	211	215	218	223	226	226	229	230	230	230	232	231	232	231	230	230	230	230	230	231	232	232	233	233	232	230	230	229	229	229	227	229	229	231	227	248	255;...
255	255	255	255	237	242	245	251	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
248	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	247	251;...
158	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	151	154	170	151	151	151	151	151	200;...
158	165	225	177	151	151	186	224	157	151	182	229	159	197	221	152	151	151	151	151	151	200	225	225	225	225	225	204	151	151	151	151	151	151	151	151	151	151	151	151	209	250	152	151	151	151	151	201;...
158	171	255	188	151	151	200	255	159	151	196	251	165	215	244	154	151	151	151	151	151	192	212	226	255	222	212	189	151	151	151	151	151	151	151	151	151	151	151	151	204	252	152	151	151	151	151	201;...
158	171	255	188	151	151	200	255	159	151	151	166	188	183	157	151	151	163	174	162	191	153	151	185	255	175	151	151	153	181	188	163	151	151	151	154	183	189	162	151	204	252	156	184	184	154	151	201;...
158	171	255	189	153	153	201	255	159	151	181	251	234	244	238	160	151	220	243	245	235	151	151	185	255	174	151	155	231	246	235	251	179	151	158	235	248	241	235	152	204	253	241	245	254	222	151	201;...
158	171	255	253	252	252	254	255	159	152	241	227	151	161	252	208	151	209	254	178	153	151	151	185	255	174	151	197	255	166	152	229	233	151	205	254	165	152	162	151	204	254	182	151	212	246	151	201;...
158	171	255	207	179	179	215	255	159	164	255	203	151	151	237	234	151	208	249	151	151	151	151	185	255	174	151	220	253	206	206	234	250	152	232	239	151	151	151	151	204	252	152	151	205	247	151	200;...
158	171	255	188	151	151	200	255	159	168	255	202	151	151	235	238	151	208	249	151	151	151	151	185	255	174	151	223	252	209	209	209	207	152	237	235	151	151	151	151	204	252	152	151	205	247	151	201;...
158	171	255	188	151	151	200	255	159	155	251	216	151	153	247	220	151	208	249	151	151	151	151	186	255	174	151	206	254	159	151	151	152	151	223	247	153	151	152	151	204	252	153	151	205	247	151	201;...
158	171	255	188	151	151	200	255	159	151	207	251	199	216	253	175	151	208	249	151	151	151	151	185	255	174	151	163	247	231	196	213	216	151	181	254	219	201	235	158	204	252	152	151	205	247	151	201;...
158	162	208	171	151	151	178	208	155	151	153	194	223	218	176	151	151	182	205	151	151	151	151	170	208	164	151	151	166	212	225	209	166	151	151	182	220	222	189	152	180	207	152	151	180	203	151	200;...
168	161	161	162	162	161	161	161	161	161	162	162	161	161	161	161	161	162	161	162	161	162	161	161	162	161	162	162	162	162	161	161	161	161	161	161	161	161	161	161	162	161	162	162	161	161	161	206;...
255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
228	235	243	255	255	255	255	255	255	255	255	255	255	255	249	252	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	246	255	255	255	255	255	255	255	255	255	255	206	227	231	247	255	255;...
178	186	245	196	227	213	194	202	228	206	195	249	211	212	193	217	217	205	232	199	223	221	200	234	197	243	202	222	212	193	239	167	228	202	224	227	251	193	195	195	255	251	162	213	242	223	207	224;...
162	203	197	245	184	196	208	234	193	191	232	202	162	184	207	243	163	179	214	235	190	237	203	253	188	219	181	193	196	216	229	197	209	235	197	201	250	198	186	194	252	255	189	198	250	201	190	255;...
198	201	215	191	205	206	215	239	202	177	188	236	184	215	217	217	191	208	222	239	200	177	213	202	196	238	184	226	206	222	233	182	215	241	189	174	247	207	198	204	253	255	199	209	196	204	202	255;...
255	255	255	255	255	255	255	255	255	206	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255;...
251	255	251	254	254	255	255	255	255	255	255	255	255	254	254	255	255	255	255	255	246	244	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	255	239	255	255	255	255	241	239	254	255;...
192	255	190	204	200	241	234	227	235	238	235	241	231	190	216	186	248	222	254	253	175	214	242	249	239	221	200	234	232	241	238	229	226	236	196	244	230	253	223	191	229	251	232	233	210	193	247	246;...
177	203	185	186	185	188	210	187	169	164	161	187	225	193	190	185	185	186	193	230	186	183	189	196	177	215	194	233	166	170	183	177	209	199	198	170	165	184	228	186	217	207	177	183	192	193	182	249;...
192	255	190	180	182	189	249	142	216	174	223	192	212	208	190	191	188	220	237	244	227	184	206	176	236	176	191	236	178	227	197	190	235	203	200	178	221	190	230	187	247	206	197	190	192	193	194	233;...
245	255	245	239	237	245	234	197	181	241	233	245	253	226	243	230	249	224	253	255	228	238	234	209	239	228	247	235	235	239	246	245	252	248	227	246	229	252	225	244	254	247	246	245	245	245	254	242;...
];

function err = refresh_mhagui( varargin )
  delete(get(gcf,'Children'));
  s = get(gcf,'UserData');
  mhagui_generic(s.handle,s.base,gcf);

function err = read_config( varargin )
  s = get(gcbo,'UserData');
  [cfgfile,cfgpath] = ...
      uigetfile({'*.cfg','MHA configuration file (*.cfg)';...
		 '*.*','All files (*.*)'});
  if isequal(cfgfile,0) || isequal(cfgpath,0)
    return
  end
  cfgfile = fullfile(cfgpath,cfgfile);
  try
    mha_query( s.handle,s.base,sprintf('read:%s',cfgfile));
  catch
    errordlg(lasterr);
  end
  
function err = save_config( varargin )
  s = get(gcbo,'UserData');
  [cfgfile,cfgpath] = ...
      uiputfile({'*.cfg','MHA configuration file (*.cfg)';...
		 '*.*','All files (*.*)'});
  if isequal(cfgfile,0) || isequal(cfgpath,0)
    return
  end
  cfgfile = fullfile(cfgpath,cfgfile);
  try
    mha_query( s.handle,s.base,sprintf('save:%s',cfgfile));
  catch
    errordlg(lasterr);
  end